<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
</body>
<script>
    //  1.使用setTimeout
    // setTimeout(() => {
    //     console.log("hello world");
    // }, 1000)
    // console.log(222);

    //  参数 -> 函数(resolve, reject)
    //  resolve, reject 本身他们又是函数
    //  链式编程
    // new Promise((resolve, reject) => {
    //     //  第一次网络请求的代码
    //     setTimeout(() => {
    //         resolve()
    //     }, 1000)
    // }).then(() => {
    //     //  第一次拿到结果处理的代码
    //     console.log("hello world");
    //     console.log("hello world");
    //     console.log("hello world");
    //     console.log("hello world");
    //     console.log("hello world");

    //     return new Promise((resolve, reject) => {
    //         //  第二次网络请求的代码
    //         setTimeout(() => {
    //             resolve()
    //         }, 1000)
    //     })
    // }).then(() => {
    //     //  第二次拿到结果处理的代码
    //     console.log("hello vue.js");
    //     console.log("hello vue.js");
    //     console.log("hello vue.js");
    //     console.log("hello vue.js");
    //     console.log("hello vue.js");

    //     return new Promise((resolve, reject) => {
    //         //  第三次网络请求的代码
    //         setTimeout(() => {
    //             resolve()
    //         }, 1000)
    //     })
    // }).then(() => {
    //     //  第三次拿到结果处理的代码
    //     console.log("hello java");
    //     console.log("hello java");
    //     console.log("hello java");
    //     console.log("hello java");
    //     console.log("hello java");
    // })
 

    //  什么情况下会用到 promise? 
    //  一般是有异步操作时，使用 promise 对这个异步操作进行封装
    //  new -> 构造函数(1.保存了一些状态信息  2.执行传入的函数)
    //  在执行传入的回调函数时，会传入两个参数， resolve, reject 本身又是函数
    new Promise((resolve, reject) => {
        setTimeout(() => {
            //  成功的时候  调用resolve
            // resolve('hello promise!!!')

            //  失败的时候  调用reject
            reject('error message!!!')
        }, 1000)
    }).then((data) => {
        //  100行处理代码
        console.log(data);
        console.log(data);
    }).catch((err) => {
        console.log(err);
    })


</script>
</html>